home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 January: Mac OS SDK / Dev.CD Jan 96 SDK / Dev.CD Jan 96 SDK2.toast / Development Kits (Disc 2) / QuickDraw™ 3D / Development / 3DMF parser / 1.0 version / MF3DMac / MFOBJTYP.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-08  |  16.9 KB  |  604 lines  |  [TEXT/MPS ]

  1. #ifndef    MF3D_OBJECTTYPE_H
  2. #define    MF3D_OBJECTTYPE_H
  3. /*==============================================================================
  4.  *
  5.  *    File:        MFOBJTYP.H
  6.  *
  7.  *    Function:    Object name/type lookup
  8.  *
  9.  *    Version:    Metafile:    Version 1.0 3DMF files
  10.  *                Package:    Release #2 of this code
  11.  *
  12.  *    Author(s):    Rick Wong (RWW), Duet Development Corp.
  13.  *                John Kelly (JRK), Duet Development Corp.
  14.  *
  15.  *    Copyright:    (c) 1995 by Apple Computer, Inc., all rights reserved.
  16.  *
  17.  *    Change History (most recent first):
  18.  *        FB7_JRK    Pragma macros
  19.  *        FB3_JRK    Added UnknownBinary (ukbn)
  20.  *        Fabio    Changed file name to 8 characters
  21.  *        F3A_RWW    MeshEdges and OrientationStyle.
  22.  *        F2S_RWW    BeginGroup
  23.  *        F2R_RWW    Change to simple object theory.
  24.  *        F2H_RWW    File created.
  25.  *==============================================================================
  26.  */
  27. #if defined(applec) || defined(__MWERKS__) || defined(THINK_C)
  28. #pragma once
  29. #endif
  30.  
  31. #include <stddef.h>
  32.  
  33. #include "MFOBJCTS.H"
  34. #include "MFOBJECT.H"
  35.  
  36. typedef struct    MF3D_ObjStuff
  37. {    MF3DObjType        type;
  38.     MF3DCStringPtr    name;
  39.     MF3DErr            (*reader)    (MF3D_FilePtr inMetafile,
  40.                                         MF3DVoidObjPtr *outObj);
  41.     MF3DErr            (*writer)    (MF3D_FilePtr inMetafile,
  42.                                         MF3DVoidObjPtr inObj);
  43.     MF3DErr            (*disposer)    (MF3DVoidObjPtr inObj);
  44. } MF3D_ObjStuff, *MF3D_ObjStuffPtr;
  45.  
  46. /*==============================================================================
  47.  *    Object Data and Method Tables
  48.  *==============================================================================
  49.  */
  50. #ifndef MF3D_Extern
  51. extern MF3D_ObjStuff    gMF3D_ObjStuffTable[];
  52. #else
  53. MF3D_ObjStuff    gMF3D_ObjStuffTable[] =
  54. {    kMF3DObjMetafile,
  55.         kMF3DObjMetafileText,
  56.         MF3D_ObjMetafileReader,
  57.         MF3D_ObjMetafileWriter,
  58.         MF3D_ObjMetafileDisposer,
  59.     kMF3DObjContainer,
  60.         kMF3DObjContainerText,
  61.         MF3D_ObjContainerReader,
  62.         MF3D_ObjContainerWriter,
  63.         MF3D_ObjContainerDisposer,
  64.     kMF3DObjEndContainer,
  65.         NULL,
  66.         NULL,
  67.         MF3D_ObjEndContainerWriter,
  68.         MF3D_ObjEndContainerDisposer,
  69.     kMF3DObjBeginGroup,
  70.         kMF3DObjBeginGroupText,
  71.         MF3D_ObjBeginGroupReader,
  72.         MF3D_ObjBeginGroupWriter,
  73.         MF3D_ObjBeginGroupDisposer,
  74.     kMF3DObjEndGroup,
  75.         kMF3DObjEndGroupText,
  76.         MF3D_ObjEndGroupReader,
  77.         MF3D_ObjEndGroupWriter,
  78.         MF3D_ObjEndGroupDisposer,
  79.     kMF3DObjReference,
  80.         kMF3DObjReferenceText,
  81.         MF3D_ObjReferenceReader,
  82.         MF3D_ObjReferenceWriter,
  83.         MF3D_ObjReferenceDisposer,
  84.     kMF3DObjTableOfContents,
  85.         kMF3DObjTableOfContentsText,
  86.         MF3D_ObjTableOfContentsReader,
  87.         MF3D_ObjTableOfContentsWriter,
  88.         MF3D_ObjTableOfContentsDisposer,
  89.     kMF3DObjType,
  90.         kMF3DObjTypeText,
  91.         MF3D_ObjTypeReader,
  92.         MF3D_ObjTypeWriter,
  93.         MF3D_ObjTypeDisposer,
  94.     kMF3DObjFaceAttributeSetList,
  95.         kMF3DObjFaceAttributeSetListText,
  96.         MF3D_ObjFaceAttributeSetListReader,
  97.         MF3D_ObjFaceAttributeSetListWriter,
  98.         MF3D_ObjFaceAttributeSetListDisposer,
  99.     kMF3DObjGeometryAttributeSetList,
  100.         kMF3DObjGeometryAttributeSetListText,
  101.         MF3D_ObjGeometryAttributeSetListReader,
  102.         MF3D_ObjGeometryAttributeSetListWriter,
  103.         MF3D_ObjGeometryAttributeSetListDisposer,
  104.     kMF3DObjVertexAttributeSetList,
  105.         kMF3DObjVertexAttributeSetListText,
  106.         MF3D_ObjVertexAttributeSetListReader,
  107.         MF3D_ObjVertexAttributeSetListWriter,
  108.         MF3D_ObjVertexAttributeSetListDisposer,
  109.     kMF3DObjCameraPlacement,
  110.         kMF3DObjCameraPlacementText,
  111.         MF3D_ObjCameraPlacementReader,
  112.         MF3D_ObjCameraPlacementWriter,
  113.         MF3D_ObjCameraPlacementDisposer,
  114.     kMF3DObjCameraRange,
  115.         kMF3DObjCameraRangeText,
  116.         MF3D_ObjCameraRangeReader,
  117.         MF3D_ObjCameraRangeWriter,
  118.         MF3D_ObjCameraRangeDisposer,
  119.     kMF3DObjCameraViewPort,
  120.         kMF3DObjCameraViewPortText,
  121.         MF3D_ObjCameraViewPortReader,
  122.         MF3D_ObjCameraViewPortWriter,
  123.         MF3D_ObjCameraViewPortDisposer,
  124.     kMF3DObjBottomCapAttributeSet,
  125.         kMF3DObjBottomCapAttributeSetText,
  126.         MF3D_ObjBottomCapAttributeSetReader,
  127.         MF3D_ObjBottomCapAttributeSetWriter,
  128.         MF3D_ObjBottomCapAttributeSetDisposer,
  129.     kMF3DObjCaps,
  130.         kMF3DObjCapsText,
  131.         MF3D_ObjCapsReader,
  132.         MF3D_ObjCapsWriter,
  133.         MF3D_ObjCapsDisposer,
  134.     kMF3DObjFaceCapAttributeSet,
  135.         kMF3DObjFaceCapAttributeSetText,
  136.         MF3D_ObjFaceCapAttributeSetReader,
  137.         MF3D_ObjFaceCapAttributeSetWriter,
  138.         MF3D_ObjFaceCapAttributeSetDisposer,
  139.     kMF3DObjTopCapAttributeSet,
  140.         kMF3DObjTopCapAttributeSetText,
  141.         MF3D_ObjTopCapAttributeSetReader,
  142.         MF3D_ObjTopCapAttributeSetWriter,
  143.         MF3D_ObjTopCapAttributeSetDisposer,
  144.     kMF3DObjDisplayGroupState,
  145.         kMF3DObjDisplayGroupStateText,
  146.         MF3D_ObjDisplayGroupStateReader,
  147.         MF3D_ObjDisplayGroupStateWriter,
  148.         MF3D_ObjDisplayGroupStateDisposer,
  149.     kMF3DObjLightData,
  150.         kMF3DObjLightDataText,
  151.         MF3D_ObjLightDataReader,
  152.         MF3D_ObjLightDataWriter,
  153.         MF3D_ObjLightDataDisposer,
  154.     kMF3DObjMeshCorners,
  155.         kMF3DObjMeshCornersText,
  156.         MF3D_ObjMeshCornersReader,
  157.         MF3D_ObjMeshCornersWriter,
  158.         MF3D_ObjMeshCornersDisposer,
  159.     kMF3DObjMeshEdges,
  160.         kMF3DObjMeshEdgesText,
  161.         MF3D_ObjMeshEdgesReader,
  162.         MF3D_ObjMeshEdgesWriter,
  163.         MF3D_ObjMeshEdgesDisposer,
  164.     kMF3DObjNURBCurve2D,
  165.         kMF3DObjNURBCurve2DText,
  166.         MF3D_ObjNURBCurve2DReader,
  167.         MF3D_ObjNURBCurve2DWriter,
  168.         MF3D_ObjNURBCurve2DDisposer,
  169.     kMF3DObjShaderData,
  170.         kMF3DObjShaderDataText,
  171.         MF3D_ObjShaderDataReader,
  172.         MF3D_ObjShaderDataWriter,
  173.         MF3D_ObjShaderDataDisposer,
  174.     kMF3DObjShaderTransform,
  175.         kMF3DObjShaderTransformText,
  176.         MF3D_ObjShaderTransformReader,
  177.         MF3D_ObjShaderTransformWriter,
  178.         MF3D_ObjShaderTransformDisposer,
  179.     kMF3DObjShaderUVTransform,
  180.         kMF3DObjShaderUVTransformText,
  181.         MF3D_ObjShaderUVTransformReader,
  182.         MF3D_ObjShaderUVTransformWriter,
  183.         MF3D_ObjShaderUVTransformDisposer,
  184.     kMF3DObjTrimCurves,
  185.         kMF3DObjTrimCurvesText,
  186.         MF3D_ObjTrimCurvesReader,
  187.         MF3D_ObjTrimCurvesWriter,
  188.         MF3D_ObjTrimCurvesDisposer,
  189.     kMF3DObjImageClearColor,
  190.         kMF3DObjImageClearColorText,
  191.         MF3D_ObjImageClearColorReader,
  192.         MF3D_ObjImageClearColorWriter,
  193.         MF3D_ObjImageClearColorDisposer,
  194.     kMF3DObjImageDimensions,
  195.         kMF3DObjImageDimensionsText,
  196.         MF3D_ObjImageDimensionsReader,
  197.         MF3D_ObjImageDimensionsWriter,
  198.         MF3D_ObjImageDimensionsDisposer,
  199.     kMF3DObjImageMask,
  200.         kMF3DObjImageMaskText,
  201.         MF3D_ObjImageMaskReader,
  202.         MF3D_ObjImageMaskWriter,
  203.         MF3D_ObjImageMaskDisposer,
  204.     kMF3DObjAmbientCoefficient,
  205.         kMF3DObjAmbientCoefficientText,
  206.         MF3D_ObjAmbientCoefficientReader,
  207.         MF3D_ObjAmbientCoefficientWriter,
  208.         MF3D_ObjAmbientCoefficientDisposer,
  209.     kMF3DObjDiffuseColor,
  210.         kMF3DObjDiffuseColorText,
  211.         MF3D_ObjDiffuseColorReader,
  212.         MF3D_ObjDiffuseColorWriter,
  213.         MF3D_ObjDiffuseColorDisposer,
  214.     kMF3DObjHighlightState,
  215.         kMF3DObjHighlightStateText,
  216.         MF3D_ObjHighlightStateReader,
  217.         MF3D_ObjHighlightStateWriter,
  218.         MF3D_ObjHighlightStateDisposer,
  219.     kMF3DObjNormal,
  220.         kMF3DObjNormalText,
  221.         MF3D_ObjNormalReader,
  222.         MF3D_ObjNormalWriter,
  223.         MF3D_ObjNormalDisposer,
  224.     kMF3DObjShadingUV,
  225.         kMF3DObjShadingUVText,
  226.         MF3D_ObjShadingUVReader,
  227.         MF3D_ObjShadingUVWriter,
  228.         MF3D_ObjShadingUVDisposer,
  229.     kMF3DObjSpecularColor,
  230.         kMF3DObjSpecularColorText,
  231.         MF3D_ObjSpecularColorReader,
  232.         MF3D_ObjSpecularColorWriter,
  233.         MF3D_ObjSpecularColorDisposer,
  234.     kMF3DObjSpecularControl,
  235.         kMF3DObjSpecularControlText,
  236.         MF3D_ObjSpecularControlReader,
  237.         MF3D_ObjSpecularControlWriter,
  238.         MF3D_ObjSpecularControlDisposer,
  239.     kMF3DObjSurfaceTangent,
  240.         kMF3DObjSurfaceTangentText,
  241.         MF3D_ObjSurfaceTangentReader,
  242.         MF3D_ObjSurfaceTangentWriter,
  243.         MF3D_ObjSurfaceTangentDisposer,
  244.     kMF3DObjSurfaceUV,
  245.         kMF3DObjSurfaceUVText,
  246.         MF3D_ObjSurfaceUVReader,
  247.         MF3D_ObjSurfaceUVWriter,
  248.         MF3D_ObjSurfaceUVDisposer,
  249.     kMF3DObjTransparencyColor,
  250.         kMF3DObjTransparencyColorText,
  251.         MF3D_ObjTransparencyColorReader,
  252.         MF3D_ObjTransparencyColorWriter,
  253.         MF3D_ObjTransparencyColorDisposer,
  254.     kMF3DObjRendererInteractive,
  255.         kMF3DObjRendererInteractiveText,
  256.         MF3D_ObjRendererInteractiveReader,
  257.         MF3D_ObjRendererInteractiveWriter,
  258.         MF3D_ObjRendererInteractiveDisposer,
  259.     kMF3DObjRendererGeneric,
  260.         kMF3DObjRendererGenericText,
  261.         MF3D_ObjRendererGenericReader,
  262.         MF3D_ObjRendererGenericWriter,
  263.         MF3D_ObjRendererGenericDisposer,
  264.     kMF3DObjRendererWireFrame,
  265.         kMF3DObjRendererWireFrameText,
  266.         MF3D_ObjRendererWireFrameReader,
  267.         MF3D_ObjRendererWireFrameWriter,
  268.         MF3D_ObjRendererWireFrameDisposer,
  269.     kMF3DObjRendererZBuffer,
  270.         kMF3DObjRendererZBufferText,
  271.         MF3D_ObjRendererZBufferReader,
  272.         MF3D_ObjRendererZBufferWriter,
  273.         MF3D_ObjRendererZBufferDisposer,
  274.     kMF3DObjAttributeSet,
  275.         kMF3DObjAttributeSetText,
  276.         MF3D_ObjAttributeSetReader,
  277.         MF3D_ObjAttributeSetWriter,
  278.         MF3D_ObjAttributeSetDisposer,
  279.     kMF3DObjOrthographicCamera,
  280.         kMF3DObjOrthographicCameraText,
  281.         MF3D_ObjOrthographicCameraReader,
  282.         MF3D_ObjOrthographicCameraWriter,
  283.         MF3D_ObjOrthographicCameraDisposer,
  284.     kMF3DObjViewAngleAspectCamera,
  285.         kMF3DObjViewAngleAspectCameraText,
  286.         MF3D_ObjViewAngleAspectCameraReader,
  287.         MF3D_ObjViewAngleAspectCameraWriter,
  288.         MF3D_ObjViewAngleAspectCameraDisposer,
  289.     kMF3DObjViewPlaneCamera,
  290.         kMF3DObjViewPlaneCameraText,
  291.         MF3D_ObjViewPlaneCameraReader,
  292.         MF3D_ObjViewPlaneCameraWriter,
  293.         MF3D_ObjViewPlaneCameraDisposer,
  294.     kMF3DObjBox,
  295.         kMF3DObjBoxText,
  296.         MF3D_ObjBoxReader,
  297.         MF3D_ObjBoxWriter,
  298.         MF3D_ObjBoxDisposer,
  299.     kMF3DObjCone,
  300.         kMF3DObjConeText,
  301.         MF3D_ObjConeReader,
  302.         MF3D_ObjConeWriter,
  303.         MF3D_ObjConeDisposer,
  304.     kMF3DObjCylinder,
  305.         kMF3DObjCylinderText,
  306.         MF3D_ObjCylinderReader,
  307.         MF3D_ObjCylinderWriter,
  308.         MF3D_ObjCylinderDisposer,
  309.     kMF3DObjDisk,
  310.         kMF3DObjDiskText,
  311.         MF3D_ObjDiskReader,
  312.         MF3D_ObjDiskWriter,
  313.         MF3D_ObjDiskDisposer,
  314.     kMF3DObjEllipse,
  315.         kMF3DObjEllipseText,
  316.         MF3D_ObjEllipseReader,
  317.         MF3D_ObjEllipseWriter,
  318.         MF3D_ObjEllipseDisposer,
  319.     kMF3DObjEllipsoid,
  320.         kMF3DObjEllipsoidText,
  321.         MF3D_ObjEllipsoidReader,
  322.         MF3D_ObjEllipsoidWriter,
  323.         MF3D_ObjEllipsoidDisposer,
  324.     kMF3DObjGeneralPolygon,
  325.         kMF3DObjGeneralPolygonText,
  326.         MF3D_ObjGeneralPolygonReader,
  327.         MF3D_ObjGeneralPolygonWriter,
  328.         MF3D_ObjGeneralPolygonDisposer,
  329.     kMF3DObjLine,
  330.         kMF3DObjLineText,
  331.         MF3D_ObjLineReader,
  332.         MF3D_ObjLineWriter,
  333.         MF3D_ObjLineDisposer,
  334.     kMF3DObjMarker,
  335.         kMF3DObjMarkerText,
  336.         MF3D_ObjMarkerReader,
  337.         MF3D_ObjMarkerWriter,
  338.         MF3D_ObjMarkerDisposer,
  339.     kMF3DObjMesh,
  340.         kMF3DObjMeshText,
  341.         MF3D_ObjMeshReader,
  342.         MF3D_ObjMeshWriter,
  343.         MF3D_ObjMeshDisposer,
  344.     kMF3DObjNURBCurve,
  345.         kMF3DObjNURBCurveText,
  346.         MF3D_ObjNURBCurveReader,
  347.         MF3D_ObjNURBCurveWriter,
  348.         MF3D_ObjNURBCurveDisposer,
  349.     kMF3DObjNURBPatch,
  350.         kMF3DObjNURBPatchText,
  351.         MF3D_ObjNURBPatchReader,
  352.         MF3D_ObjNURBPatchWriter,
  353.         MF3D_ObjNURBPatchDisposer,
  354.     kMF3DObjPoint,
  355.         kMF3DObjPointText,
  356.         MF3D_ObjPointReader,
  357.         MF3D_ObjPointWriter,
  358.         MF3D_ObjPointDisposer,
  359.     kMF3DObjPolygon,
  360.         kMF3DObjPolygonText,
  361.         MF3D_ObjPolygonReader,
  362.         MF3D_ObjPolygonWriter,
  363.         MF3D_ObjPolygonDisposer,
  364.     kMF3DObjPolyLine,
  365.         kMF3DObjPolyLineText,
  366.         MF3D_ObjPolyLineReader,
  367.         MF3D_ObjPolyLineWriter,
  368.         MF3D_ObjPolyLineDisposer,
  369.     kMF3DObjTorus,
  370.         kMF3DObjTorusText,
  371.         MF3D_ObjTorusReader,
  372.         MF3D_ObjTorusWriter,
  373.         MF3D_ObjTorusDisposer,
  374.     kMF3DObjTriangle,
  375.         kMF3DObjTriangleText,
  376.         MF3D_ObjTriangleReader,
  377.         MF3D_ObjTriangleWriter,
  378.         MF3D_ObjTriangleDisposer,
  379.     kMF3DObjTriGrid,
  380.         kMF3DObjTriGridText,
  381.         MF3D_ObjTriGridReader,
  382.         MF3D_ObjTriGridWriter,
  383.         MF3D_ObjTriGridDisposer,
  384.     kMF3DObjGroup,
  385.         kMF3DObjGroupText,
  386.         MF3D_ObjGroupReader,
  387.         MF3D_ObjGroupWriter,
  388.         MF3D_ObjGroupDisposer,
  389.     kMF3DObjDisplayGroup,
  390.         kMF3DObjDisplayGroupText,
  391.         MF3D_ObjDisplayGroupReader,
  392.         MF3D_ObjDisplayGroupWriter,
  393.         MF3D_ObjDisplayGroupDisposer,
  394.     kMF3DObjIOProxyDisplayGroup,
  395.         kMF3DObjIOProxyDisplayGroupText,
  396.         MF3D_ObjIOProxyDisplayGroupReader,
  397.         MF3D_ObjIOProxyDisplayGroupWriter,
  398.         MF3D_ObjIOProxyDisplayGroupDisposer,
  399.     kMF3DObjOrderedDisplayGroup,
  400.         kMF3DObjOrderedDisplayGroupText,
  401.         MF3D_ObjOrderedDisplayGroupReader,
  402.         MF3D_ObjOrderedDisplayGroupWriter,
  403.         MF3D_ObjOrderedDisplayGroupDisposer,
  404.     kMF3DObjInfoGroup,
  405.         kMF3DObjInfoGroupText,
  406.         MF3D_ObjInfoGroupReader,
  407.         MF3D_ObjInfoGroupWriter,
  408.         MF3D_ObjInfoGroupDisposer,
  409.     kMF3DObjLightGroup,
  410.         kMF3DObjLightGroupText,
  411.         MF3D_ObjLightGroupReader,
  412.         MF3D_ObjLightGroupWriter,
  413.         MF3D_ObjLightGroupDisposer,
  414.     kMF3DObjAmbientLight,
  415.         kMF3DObjAmbientLightText,
  416.         MF3D_ObjAmbientLightReader,
  417.         MF3D_ObjAmbientLightWriter,
  418.         MF3D_ObjAmbientLightDisposer,
  419.     kMF3DObjDirectionalLight,
  420.         kMF3DObjDirectionalLightText,
  421.         MF3D_ObjDirectionalLightReader,
  422.         MF3D_ObjDirectionalLightWriter,
  423.         MF3D_ObjDirectionalLightDisposer,
  424.     kMF3DObjPointLight,
  425.         kMF3DObjPointLightText,
  426.         MF3D_ObjPointLightReader,
  427.         MF3D_ObjPointLightWriter,
  428.         MF3D_ObjPointLightDisposer,
  429.     kMF3DObjSpotLight,
  430.         kMF3DObjSpotLightText,
  431.         MF3D_ObjSpotLightReader,
  432.         MF3D_ObjSpotLightWriter,
  433.         MF3D_ObjSpotLightDisposer,
  434.     kMF3DObjLambertIllumination,
  435.         kMF3DObjLambertIlluminationText,
  436.         MF3D_ObjLambertIlluminationReader,
  437.         MF3D_ObjLambertIlluminationWriter,
  438.         MF3D_ObjLambertIlluminationDisposer,
  439.     kMF3DObjPhongIllumination,
  440.         kMF3DObjPhongIlluminationText,
  441.         MF3D_ObjPhongIlluminationReader,
  442.         MF3D_ObjPhongIlluminationWriter,
  443.         MF3D_ObjPhongIlluminationDisposer,
  444.     kMF3DObjTextureShader,
  445.         kMF3DObjTextureShaderText,
  446.         MF3D_ObjTextureShaderReader,
  447.         MF3D_ObjTextureShaderWriter,
  448.         MF3D_ObjTextureShaderDisposer,
  449.     kMF3DObjBackfacingStyle,
  450.         kMF3DObjBackfacingStyleText,
  451.         MF3D_ObjBackfacingStyleReader,
  452.         MF3D_ObjBackfacingStyleWriter,
  453.         MF3D_ObjBackfacingStyleDisposer,
  454.     kMF3DObjFillStyle,
  455.         kMF3DObjFillStyleText,
  456.         MF3D_ObjFillStyleReader,
  457.         MF3D_ObjFillStyleWriter,
  458.         MF3D_ObjFillStyleDisposer,
  459.     kMF3DObjHighlightStyle,
  460.         kMF3DObjHighlightStyleText,
  461.         MF3D_ObjHighlightStyleReader,
  462.         MF3D_ObjHighlightStyleWriter,
  463.         MF3D_ObjHighlightStyleDisposer,
  464.     kMF3DObjInterpolationStyle,
  465.         kMF3DObjInterpolationStyleText,
  466.         MF3D_ObjInterpolationStyleReader,
  467.         MF3D_ObjInterpolationStyleWriter,
  468.         MF3D_ObjInterpolationStyleDisposer,
  469.     kMF3DObjOrientationStyle,
  470.         kMF3DObjOrientationStyleText,
  471.         MF3D_ObjOrientationStyleReader,
  472.         MF3D_ObjOrientationStyleWriter,
  473.         MF3D_ObjOrientationStyleDisposer,
  474.     kMF3DObjPickIDStyle,
  475.         kMF3DObjPickIDStyleText,
  476.         MF3D_ObjPickIDStyleReader,
  477.         MF3D_ObjPickIDStyleWriter,
  478.         MF3D_ObjPickIDStyleDisposer,
  479.     kMF3DObjPickPartsStyle,
  480.         kMF3DObjPickPartsStyleText,
  481.         MF3D_ObjPickPartsStyleReader,
  482.         MF3D_ObjPickPartsStyleWriter,
  483.         MF3D_ObjPickPartsStyleDisposer,
  484.     kMF3DObjReceiveShadowsStyle,
  485.         kMF3DObjReceiveShadowsStyleText,
  486.         MF3D_ObjReceiveShadowsStyleReader,
  487.         MF3D_ObjReceiveShadowsStyleWriter,
  488.         MF3D_ObjReceiveShadowsStyleDisposer,
  489.     kMF3DObjSubdivisionStyle,
  490.         kMF3DObjSubdivisionStyleText,
  491.         MF3D_ObjSubdivisionStyleReader,
  492.         MF3D_ObjSubdivisionStyleWriter,
  493.         MF3D_ObjSubdivisionStyleDisposer,
  494.     kMF3DObjMatrixTransform,
  495.         kMF3DObjMatrixTransformText,
  496.         MF3D_ObjMatrixTransformReader,
  497.         MF3D_ObjMatrixTransformWriter,
  498.         MF3D_ObjMatrixTransformDisposer,
  499.     kMF3DObjQuaternionTransform,
  500.         kMF3DObjQuaternionTransformText,
  501.         MF3D_ObjQuaternionTransformReader,
  502.         MF3D_ObjQuaternionTransformWriter,
  503.         MF3D_ObjQuaternionTransformDisposer,
  504.     kMF3DObjRotateTransform,
  505.         kMF3DObjRotateTransformText,
  506.         MF3D_ObjRotateTransformReader,
  507.         MF3D_ObjRotateTransformWriter,
  508.         MF3D_ObjRotateTransformDisposer,
  509.     kMF3DObjRotateAboutAxisTransform,
  510.         kMF3DObjRotateAboutAxisTransformText,
  511.         MF3D_ObjRotateAboutAxisTransformReader,
  512.         MF3D_ObjRotateAboutAxisTransformWriter,
  513.         MF3D_ObjRotateAboutAxisTransformDisposer,
  514.     kMF3DObjRotateAboutPointTransform,
  515.         kMF3DObjRotateAboutPointTransformText,
  516.         MF3D_ObjRotateAboutPointTransformReader,
  517.         MF3D_ObjRotateAboutPointTransformWriter,
  518.         MF3D_ObjRotateAboutPointTransformDisposer,
  519.     kMF3DObjScaleTransform,
  520.         kMF3DObjScaleTransformText,
  521.         MF3D_ObjScaleTransformReader,
  522.         MF3D_ObjScaleTransformWriter,
  523.         MF3D_ObjScaleTransformDisposer,
  524.     kMF3DObjTranslateTransform,
  525.         kMF3DObjTranslateTransformText,
  526.         MF3D_ObjTranslateTransformReader,
  527.         MF3D_ObjTranslateTransformWriter,
  528.         MF3D_ObjTranslateTransformDisposer,
  529.     kMF3DObjMacintoshPath,
  530.         kMF3DObjMacintoshPathText,
  531.         MF3D_ObjMacintoshPathReader,
  532.         MF3D_ObjMacintoshPathWriter,
  533.         MF3D_ObjMacintoshPathDisposer,
  534.     kMF3DObjUnixPath,
  535.         kMF3DObjUnixPathText,
  536.         MF3D_ObjUnixPathReader,
  537.         MF3D_ObjUnixPathWriter,
  538.         MF3D_ObjUnixPathDisposer,
  539.     kMF3DObjCString,
  540.         kMF3DObjCStringText,
  541.         MF3D_ObjCStringReader,
  542.         MF3D_ObjCStringWriter,
  543.         MF3D_ObjCStringDisposer,
  544.     kMF3DObjUnicode,
  545.         kMF3DObjUnicodeText,
  546.         MF3D_ObjUnicodeReader,
  547.         MF3D_ObjUnicodeWriter,
  548.         MF3D_ObjUnicodeDisposer,
  549.     kMF3DObjPixmapTexture,
  550.         kMF3DObjPixmapTextureText,
  551.         MF3D_ObjPixmapTextureReader,
  552.         MF3D_ObjPixmapTextureWriter,
  553.         MF3D_ObjPixmapTextureDisposer,
  554.     kMF3DObjViewHints,
  555.         kMF3DObjViewHintsText,
  556.         MF3D_ObjViewHintsReader,
  557.         MF3D_ObjViewHintsWriter,
  558.         MF3D_ObjViewHintsDisposer,
  559.     kMF3DObjUnknownBinary,            /* FB3_JRK */
  560.         kMF3DObjUnknownBinaryText,
  561.         MF3D_ObjUnknownBinaryReader,
  562.         MF3D_ObjUnknownBinaryWriter,
  563.         MF3D_ObjUnknownBinaryDisposer,
  564.     kMF3DObjMetafileSwapped,        /* F3R_PAM allow swapped binary files */
  565.         kMF3DObjMetafileText,
  566.         MF3D_ObjMetafileReader,
  567.         MF3D_ObjMetafileWriter,
  568.         MF3D_ObjMetafileDisposer,    
  569.     kMF3DObjInvalid,
  570.         NULL,
  571.         NULL,
  572.         NULL,
  573.         NULL
  574.     };
  575. #endif /* MF3D_Extern */
  576.  
  577. #ifndef MF3D_Extern
  578. extern    MF3D_ObjStuff    gMF3D_UnknownObjStuffTable;
  579. #else
  580. MF3D_ObjStuff    gMF3D_UnknownObjStuffTable =
  581. {    kMF3DObjUnknownType,
  582.         NULL,
  583.         MF3D_ObjUnknownReader,
  584.         MF3D_ObjUnknownWriter,
  585.         MF3D_ObjUnknownDisposer,
  586. };
  587. #endif /* MF3D_Extern */
  588.  
  589. MF3DErr    MF3D_FindObjectFromName(
  590.                 const char            *inObjName,
  591.                 MF3D_ObjStuffPtr    *outObjStuffPtr,
  592.                 MF3DObjType            *outObjectType);
  593.  
  594. MF3DErr    MF3D_FindObjectFromType(
  595.                 MF3DObjType            inObjType,
  596.                 MF3D_ObjStuffPtr    *outObjStuffPtr);
  597.  
  598. MF3DErr MF3D_ConvertUserDefinedObjType(
  599.                 MF3D_FilePtr        inMetafilePtr,
  600.                 MF3DObjType            inObjType,
  601.                 MF3DCStringPtr        *outObjName);
  602.  
  603. #endif
  604.